package com.winner.command_parrern;

/**
 * 命令设计模式
 * 将一个请求封装为一个对象, 从而可用不同的请求对客户进行参数化, 将请求排队或记录请求日志, 支持可撤销的操作
 *
 * @Author wangxinle5
 * @since 2024-04-22
 */
public class Main {
    public static void main(String[] args) {
        // new 接受者 士兵
        CompanyArmy companyArmy = new CompanyArmy();
        // new 具体命令
        ConcreteCommand concreteCommand = new ConcreteCommand(companyArmy);
        // new 指挥官
        ArmySuperior armySuperior = new ArmySuperior();
        armySuperior.setCommand(concreteCommand);
        // 指挥者调用士兵执行命令
        armySuperior.startExecuteCommand();
    }
}
